home *** CD-ROM | disk | FTP | other *** search
- Tutorial for FireWorx Crackme #13
- cracked by Nuno1
- any comments are welcome to :
- Nuno_2@hotmail.com
-
- Information :
- Cracker : Nuno1
- Date : 17 july 1999
- Level : 3-4
-
- Tools used :
- - SoftIce
-
- Hey Crackers !
-
- this Tutorial will teach you how to GET a serial code for FireWorx Crackme #13.
-
- ok .. so let define our target :
-
- - cant run while softice is on
- - when run , a nice dialog with two editbox (notice i didnt say Name and serial ..
- I am sure you have been sure it is :) )
- - a nice OK button to press to check the key.
-
- ok .. let start with patch the crackme softice detector.
-
- ------------ PATCHING SOFTICE DETECTOR -------------
-
- first of .. i will explain to the crackers that still dont know.
-
- VXDs / SYS's
- ------------
- VXDs stands for "Virtual X Drivers" it is a windows 95/98 drivers
- (not NT drivers NT Drivers are SYS and they are totaly diffrent from VXDs
- VXDs willn't work on a NT machine)
-
- the "X" in the name means the hardware that this driver for .. for example :
- VKD - Virtual Keyboard Driver
- VMD - Virtual Mouse Driver
- VDD - Virtual Display Driver , etc
-
- the diffrents from a driver and from a an application is that the driver can get
- to every IO Port , Memory Blocks , any process's they like .
-
- regualr applications can ONLY get into the memory of the current process and if
- they are calling an I/O Port it is really a MAPPED I/O to a Driver.
-
- Drivers working on "RING 0" means have all the privilages
- Applications working on "RING 3" means they have less privilages.
-
- there are two ways to load drivers :
- 1. when windows start.
- 2. Dynamicly
-
- to load it when windows start you need to put on the Registry or in system.ini the
- driver name and thats it .
-
- to load it dynamicly you have to call CreateFileA API function with the
- filename "\\.\VXDFILE.VXD" and if it will run createfile will return an handle
- else it return INVALID_HANDLE errorcode.
-
- ofcourse you have to make the driver able to load dynamicly.
-
- in the driver , there is an EVENT that run when CreateFileA as been called.
-
- now .. to be sure that a VXD/SYS is running , you have to call CreateFileA with the
- "\\.\VXDFILE.VXD" if it return an error the Vxd is not running , else it is ..
-
- lets return to our softice detector now .
-
- as I told before .. softice is ofcourse a driver.
-
- to make the crackme run , we have to patch the place that return TRUE when ask if
- softice is running.
-
- let start !
-
- go to SoftIce and bpx CreateFileA , you first notice that Explorer as call it
- ofcourse to open the process.
-
- press "g" and look
-
- do "d eax" , now you will see "\\.\SICE" (down there you can see that he also take
- the chance that you are on an NT machine and he try to find if there is "\\.\SICENT")
-
- ok .. so here it is check if it is running . press F12
- and you will see this code :
-
- CALL KERNEL32!CreateFileA ; Open the SICE or SICENT driver
- CMP Eax,-01 ; does it running ?
- JZ 004553BB ; jump if no .. else continue.
-
- so all we have to do is break after the CreateFileA and do "r eax=-1"
-
- that will solve the Softice Detector..
-
- ------------------- SOLVING THE SERIAL -------------------
-
- ok , now WITH softice we can run the crackme .. ;)
-
- Type somthing in the two EditBoxs. (I used "Nuno1 Cracking" , "123456789")
-
- bpx on hmemcpy . and press the OK button.
-
- press some F12 until you will reach this line :
-
- 4554E7 : MOV EAX,[EBP-08]
-
- press one F10 and do "d EAX" you can see your name.
-
- down there , there is a total mass up keygen , but if you will look good . you will
- notice that nothing is really taken from your Name !!
- ok .. lets break after the mass :)
-
- bpx on 455564 . this is the end of the mass .. there is a CALL there . if you will
- enter to the call you will notice it is a strcmp like function and all it does is to
- compare your name with a number .. but what is that number ? lets look .
-
- before entering again to the call just type "d edx" you will see the number that he
- is comparing with.
-
- write the number in any paper. and disable all breakpoints .. now type it in the
- FIRST editbox and press OK .
-
- ha !! cracked !! but then what about the second editbox ????
-
- type in the second editbox whatever you like !! anything , and it still work ;)
-
- the second editbox is not really in any use ;) (read the start of the tutorial and
- you will understand somthing that you didn't when you first read)
-
- lets check this out to be 100% sure .
-
- fill anything in the two editboxs and lets do a nice hmemcpy bpx.
-
- press the OK .. did you notice he doesn't really cut the string from the second
- editbox ?
-
- now .. you can also write a keygen for this .. even that it is not really a keygen
- it just taking the lines of the calc (you can by a min dump the assembly and just call
- this routine and it will give you all the combiniations , i didn't do it because
- I dont think it is really interesting ;).. you welcome to do it yourself ;)
-
- hope you learn somthing ;)
-
- Nice cracking !
-
- Nuno1 - Nuno_2@hotmail.com
-
-
-
-
-
-
-
-